package com.power.ding.service;

import com.power.ding.model.Di_user;
import com.power.ding.model.Gzt_User;
import com.power.ding.model.pageInfo.Di_userPageInfo;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 用户信息业务层
 */
public interface Di_userService {

    /**
     * 根据id获取用户信息对象
     */
    Di_user getById(Serializable id);

    /**
     * 根据传入用户信息对象进行新增或更新操作
     */
    void saveOrUpdate(Di_user di_user);

    /**
     * 根据id删除用户信息
     */
    void removeById(Serializable id);

    /**
     * 根据传入条件查询用户信息分页结果
     */
    Page<Di_user> findAll(Di_userPageInfo pageInfo);

    /**
     * 查询全部用户信息
     */
    List<Di_user> findAll();

    /**
     * 根据id批量删除用户信息
     */
    void removeByIds(List<Integer> list);

    /**
     * 批量保存用户信息
     */
    void saveAll(List<Di_user> list);

    /**
     * 按照组织id查询对应的数据
     *
     * @param orgId
     * @return
     */
    List<Di_user> findUserByOrgId(String orgId);


    /**
     * 查询全部关联的用户
     *
     * @return
     */
    List<Map<String, Object>> findAllDeptUser();

    /**
     * 查询登录人和部门信息
     *
     * @param userid
     * @param gzt_user
     * @return
     */
    Di_user getUserAndDeptById(String userid, Gzt_User gzt_user);

    /**
     * 通过电话号码查询对应的赣政通用户
     *
     * @param phones
     * @return
     */
    List<Di_user> getUserByPhones(List<String> phones);

    /**
     * 通过电话号码查询对应的系统用户
     *
     * @param mobile
     * @return
     */
    Map<String, Object> getSysUserByPhones(String mobile);

    /**
     * 按照电话号码查询赣政通可登录用户
     * @param mobile
     * @return
     */
    Map<String, Object> getRelUserByMobile(String mobile);

    /**
     * 按照用户名查询 用户
     */
    List<Di_user> getUserByName(String userName);

    /**
     * 根据区划查询关联用户
     * @param adid
     * @return
     */
    Di_user getUserByAdid(String adid);

    /**
     * 根据deptid查询关联用户
     * @param deptid
     * @return
     */
    Di_user getUserByDeptid(String deptid);


    /**
     * 按照用户id查询 用户
     */
    List<Di_user> findUserByIds(List<String> ids);

}
